import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
import getters from './getters'
import state from './state'

const modules = {},
    // 获取所有index文件
    fileList = require.context('.', true, /index$/);
// 遍历文件集合
fileList.keys().forEach(key => {
    // 排除掉根目录下文件
    if (key != './index') {
        // 处理key
        // 例 key = './system/company/index'
        // 1. 去掉 ./ 和 /index
        //    ./system/company/index => system/company
        // 1. 将 / 之后的第一个字母转为大写并去掉 /
        //    system/company => systemCompany
        const name = key.replace(/(\/index|\.\/)/g, '').replace(/\/[a-z]/g, function (v) {
            return v.replace(/\//g, '').toLocaleUpperCase()
        });
        // 注册模块
        modules[name] = fileList(key).default;
    }
})

export default new Vuex.Store({
    getters,
    state,
    modules
})